A conventional cryptosystem is generally classified into a secret key cryptosystem and a public key cryptosystem. The secret key cryptosystem is further classified into a stream cryptosystem and a block cryptosystem. Thus, a number of systems have been considered.
According to the secret key cryptosystem, only concerned parties hold both an encryption key and a decryption key as secret keys, a person sending an encrypted text encrypts a plain text with an encryption key and sends the encrypted text to a communication partner, and the communication partner decrypts the encrypted text with a decryption key to obtain the plain text. Herein, considering the strength of a cryptosystem, two points are important factors: an encryption key and a decryption key are kept secret; and a person sniffng an encrypted text during communication cannot easily learn the encrypted text to find a rule of obtaining a plain text. Regarding the former point, an encryption key and a decryption key are shared by communication parties, so that it becomes important how safely a key whose distribution is required at least once should be distributed. Regarding the latter point, various attempts have been made; for example, complexity of a rule is enhanced so that a rule will not be easily found, a hash function without any rule is used, and a key and a rule used each time are altered at random.
According to the public key cryptosystem, by utilizing difficulty in unique factorization of a value of a product of sufficiently large prime numbers and difficulty in obtaining a solution to an elliptical curve, an encryption key for encryption is made public, a person who desires to send a plain text creates an encrypted text using the key element that is made public, and only an authorized person can decrypt the encrypted text with a secret key. According to this system, security is ensured using the difficulty in obtaining a secret key from a public key, and distribution of a key, which becomes a problem according to the secret key cryptosystem, is not required. In this point, security is enhanced.
However, the public key cryptosystem requires a large amount of calculation time for encryption and decryption. Therefore, it takes a long time and a large cost to deal with a long (about 1000 or more characters) plain text, which is inconvenient for a practical use.
According to the conventionally known secret key cryptosystem, a block cryptosystem is mainly used. This system requires a long calculation time for encryption and decryption, and also requires a long time and a large cost for dealing with a long plain text, which is inconvenient for a practical use. Furthermore, although a DES cryptosystem is generally used in a conventional secret key cryptosystem, it is found that an encrypted text may be decrypted in principle, which causes a safety problem.
On the other hand, in the stream cryptosystem among the secret key cryptosystem, according to a system (Vernam cryptosystem) in which a genuine random number sequence is used as an encryption key, and a key used in the past is not used any more, it takes less time for encryption and decryption, and an encrypted text cannot be decrypted in principle. However, it is required to previously send an encryption key with the same length as that of an encrypted text to a receiver by safe means, so that a problem of distribution of a key is caused. Since it costs a lot for ensuring security for distributing a key, the Vernam cryptosystem can be used only for special communication requiring high secrecy, even if a cost for distributing a key is left out of consideration.